<html>
    <link rel="stylesheet" type="text/css" href="javascript/resources/css/ext-all.css"/> 
    <script src="javascript/adapter/ext/ext-base.js" type="text/javascript" charset="utf-8"></script>
    <script src="javascript/ext-all.js" type="text/javascript" charset="utf-8"></script>
    <body>
        <script type="text/javascript">
            Ext.ns('com.administrador');
            com.administrador.Form1 = {
                init: function(){
                    //<-- METODOS GRILLA 1 -->
                    var index = null;
                    function onRowClick(grid,rowIndex,e){
                        if(grid1.getSelectionModel().getCount() > 0){
                            index = grid.getStore().getAt(rowIndex).get('idSistemaEvaluacion');
                            loadGrilla2();
                        }
                    };

                    function agregarCurso(){
                        Ext.Ajax.request({
                            url: 'AdministradorServlet',
                            method: 'POST',
                            params: {
                                idCiclo : w_ciclo.getValue(),
                                idCurso : w_curso.getValue(),
                                action : 'addSistemaEval'

                            },
                            success: function (action,options){
                                var data=Ext.util.JSON.decode(action.responseText);
                                alert(data.message);
                                store.load({params:{x:'x'}});
                                win1.hide();
                            }
                        });
                    }


                    function emitirCurso(){
                        Ext.Ajax.request({
                            url: 'index.php/modulo/adm_grilla1_enable',
                            method: 'POST',
                            params: {
                                idCurso : index
                            },
                            success: function (action,options){
                                var data=Ext.util.JSON.decode(action.responseText);
                                alert(data.message);
                            }
                        });
                    }

                    function eliminarCurso(){
                        Ext.Ajax.request({
                            url: 'AdministradorServlet',
                            method: 'POST',
                            params: {
                                idSistemaEvaluacion : index,
                                action : 'eliminarSistemaEval'
                            },
                            success: function (action,options){
                                var data=Ext.util.JSON.decode(action.responseText).message;
                                alert(data);
                                //win1.show();
                                store.load({params:{x:'x'}});
                            }
                        });
                    }





                    //<-- GRILLA 1 -->
                    var dataRecord = new Ext.data.Record.create([
                        {name:'idSistemaEvaluacion', type:'int'},
                        {name:'ciclo.codigoExterno',type:'string'},
                        {name:'curso.codigoCurso', type:'string'},
                        {name:'curso.nombreCurso', type: 'string'},
                        {name:'estado', type: 'string'}
                    ]);

                    var dataReader = new Ext.data.JsonReader({
                        root: 'data'
                    },
                    dataRecord
                );

                    var dataProxy = new Ext.data.HttpProxy({
                        url:'AdministradorServlet?action=getSistemaEvaluacionLista',
                        method: 'POST'
                    });


                    var store = new Ext.data.GroupingStore({
                        proxy: dataProxy,
                        reader: dataReader
                    });

                    store.load({params:{x:'x'}});

                    var grid1 = new Ext.grid.GridPanel({
                        name:'grilla1',
                        id:'grilla1',
                        width:600,
                        height:200,
                        store:store,
                        border:false,
                        columns: [
                            new Ext.grid.CheckboxSelectionModel({singleSelect : true}),
                            {id:'idSistemaEvaluacion',dataIndex:'idSistemaEvaluacion', hidden:true},
                            {header: 'Ciclo',width: 60,dataIndex: 'ciclo.codigoExterno'},
                            {header: 'Codigo',width: 75,dataIndex: 'curso.codigoCurso'},
                            {header: 'Curso.',width:250,dataIndex: 'curso.nombreCurso'},
                            {header: 'Estado', width: 80,dataIndex: 'estado'},
                        ],
                        stripeRows: true,
                        listeners:{
                            rowclick:function(grid,rowIndex,e){
                                onRowClick(grid,rowIndex,e);
                            }
                        }
                    });

                    var toolbar1= new Ext.Toolbar({
                        items: [
                            {
                                text : 'Agregar',
                                tooltip : 'Agregar',
                                listeners : {
                                    click: function(){
                                        win1.show();
                                        w_ciclo.getStore().load({params:{x:'x'}});
                                        w_curso.getStore().load({params:{x:'x'}});
                                    }
                                }
                            },{
                                xtype : 'tbspacer',
                                width : 10
                            },
                            {
                                text : 'Eliminar',
                                tooltip : 'Quitar',
                                listeners : {
                                    click: function(){
                                        eliminarCurso();
                                    }
                                }
                            },{
                                xtype : 'tbspacer',
                                width : 10
                            },
                            {
                                text : 'Emitir',
                                tooltip : 'Emitir',
                                listeners : {
                                    click: function(){
                                        emitirCurso();
                                    }
                                }
                            }
                        ]
                    });
// <-- WINDOW GRILLA 1 -->

                    var w_ciclo=new Ext.form.ComboBox({
                        fieldLabel:'Ciclo',
                        name:'ciclo',
                        forceSelection:true,
                        emptyText:'Seleccione ciclo...',
                        triggerAction: 'all',
                        editable:false,
                        mode: 'local',
                        displayField:'nombreCiclo',
                        valueField: 'idCiclo',
                        store :new Ext.data.JsonStore({
                            url:'AdministradorServlet?action=getCiclos',
                            root: 'data',
                            totalProperty: 'total',
                            fields: [
                                {name:'idCiclo', type: 'string'},
                                {name:'nombreCiclo', type: 'string'}
                            ]
                        })
                    });
                    var w_curso=new Ext.form.ComboBox({
                        fieldLabel:'Curso',
                        name:'curso',
                        forceSelection:true,
                        emptyText:'Seleccione curso...',
                        triggerAction: 'all',
                        editable:false,
                        mode: 'local',
                        displayField:'nombreCurso',
                        valueField: 'idCurso',
                        store :new Ext.data.JsonStore({
                            url:'AdministradorServlet?action=getCursos',
                            root: 'data',
                            totalProperty: 'total',
                            fields: [
                                {name:'idCurso', type: 'string'},
                                {name:'nombreCurso', type: 'string'}
                            ]
                        })
                    });


                    var win1 = new Ext.Window({
                        title:'Agregar Curso',
                        name:'window',
                        id:'window',
                        layout:'fit',
                        width:500,
                        height:150,
                        closeAction:'hide',
                        items: new Ext.FormPanel({
                            border:false,
                            bodyStyle:'padding-left:50px;padding-top:20px;',
                            items:[new Ext.Panel({
                                    border:false,
                                    layout:'form',
                                    items:[
                                        w_ciclo,
                                        w_curso
                                    ]
                                })
                            ]
                        }),
                        buttons: [{
                                text:'Agregar',
                                tooltip : 'agregar',
                                listeners : {
                                    click: function(){
                                        agregarCurso();
                                    }
                                }
                            }]
                    });




                    //<-- GRILLA 2 -->

                    //<-- METODOS GRILLA 2 -->
                    var index2 = null;
                    function onRowClick2(grid,rowIndex,e){
                        index2 = grid.getStore().getAt(rowIndex).get('idEvaluacion');
                    };
                    
                    function agregarEvaluacion(){
                        Ext.Ajax.request({
                            url: 'AdministradorServlet',
                            method: 'POST',
                            params: {
                                idEvaluacion : w_evaluacion.getValue(),
                                idCursoEval : index,
                                peso : w_porcentaje.getValue(),
                                action : 'saveTipoEvalPorc'
                            },
                            success: function (action,options){
                                var data=Ext.util.JSON.decode(action.responseText);
                                alert(data.message);
                                loadGrilla2();
                                win2.hide();
                            }
                        });
                    }
                    
                    function eliminarEvaluacion(){
                        Ext.Ajax.request({
                            url: 'index.php/modulo/adm_grilla2_del',
                            method: 'POST',
                            params: {
                                idEvaluacion : index2
                            },
                            success: function (action,options){
                                var data=Ext.util.JSON.decode(action.responseText).data;
                                alert(data.message);
                            }
                        });
                    }

                    function loadGrilla2(){
                        grid2.getStore().load({
                            params:{
                                idCurso:index
                            }
                        });
                    }


                    var dataRecord2 = new Ext.data.Record.create([
                        {name:'idDetalle', type:'int'},
                        {name:'tipoEvaluacion.nombreTipoEvaluacion',type:'string'},
                        {name:'pesoEvaluacion', type:'float'}
                    ]);

                    var dataReader2 = new Ext.data.JsonReader({
                        root: 'data'
                    },
                    dataRecord2
                    );

                    var dataProxy2 = new Ext.data.HttpProxy({
                        url:'AdministradorServlet?action=getDetalle',
                        method: 'POST'
                    });


                    var store2 = new Ext.data.GroupingStore({
                        proxy: dataProxy2,
                        reader: dataReader2
                    });

                    var grid2 = new Ext.grid.GridPanel({
                        name:'grilla2',
                        id:'grilla2',
                        width:500,
                        height:200,
                        store:store2,
                        border:false,
                        columns: [
                            new Ext.grid.CheckboxSelectionModel({singleSelect : true}),
                            {id:'idDetalle',dataIndex:'idDetalle', hidden:true},
                            {header: 'Tipo Eval.',width: 200,dataIndex: 'tipoEvaluacion.nombreTipoEvaluacion'},
                            {header: 'peso',width: 75,dataIndex: 'pesoEvaluacion'}
                        ],
                        stripeRows: true,
                        listeners:{
                            rowclick:function(grid,rowIndex,e){
                                onRowClick2(grid,rowIndex,e);
                            }
                        }
                    });



                    var toolbar2= new Ext.Toolbar({
                        items: [
                            {
                                text : 'Agregar',
                                tooltip : 'Agregar',
                                listeners : {
                                    click: function(){
                                        if (index>0){
                                            win2.show();
                                            w_evaluacion.getStore().load({params:{x:'x'}});
                                        }else{
                                            alert('Seleccione un curso');
                                        }

                                    }
                                }
                            },{
                                xtype : 'tbspacer',
                                width : 10
                            },
                            {
                                text : 'Eliminar',
                                tooltip : 'Quitar',
                                listeners : {
                                    click: function(){
                                        eliminarEvaluacion();
                                    }
                                }
                            }
                        ]
                    });
                    



                    // <-- WINDOW GRILLA 2 -->

                    var w_evaluacion=new Ext.form.ComboBox({
                        fieldLabel:'Tipo de Evaluacion',
                        name:'tipoEvaluacion',
                        forceSelection:true,
                        emptyText:'Seleccione tipo de evaluacion...',
                        triggerAction: 'all',
                        editable:false,
                        mode: 'local',
                        displayField:'nombreTipoEvaluacion',
                        valueField: 'idTipoEvaluacion',
                        store :new Ext.data.JsonStore({
                            url:'AdministradorServlet?action=getTipoEvalLista',
                            root: 'data',
                            totalProperty: 'total',
                            fields: [
                                {name:'idTipoEvaluacion', type: 'int'},
                                {name:'nombreTipoEvaluacion', type: 'string'}
                            ]
                        })
                    });

                    var w_porcentaje = new Ext.form.NumberField({
                        fieldLabel:'Peso (%)',
                        name:'porcentaje',
                        id:'porcentaje',
                        width:70
                    });


                    var win2 = new Ext.Window({
                        title:'Agregar Tipo de Evaluacion',
                        name:'window2',
                        id:'window2',
                        layout:'fit',
                        width:380,
                        height:150,
                        closeAction:'hide',
                        items: new Ext.FormPanel({
                            border:false,
                            bodyStyle:'padding-left:50px;padding-top:20px;',
                            items:[new Ext.Panel({
                                    border:false,
                                    layout:'form',
                                    items:[
                                        w_evaluacion,
                                        w_porcentaje
                                    ]
                                })
                            ]
                        }),
                        buttons: [{
                                text:'Agregar',
                                tooltip : 'agregar',
                                listeners : {
                                    click: function(){
                                        agregarEvaluacion();
                                    }
                                }
                            }]
                    });


                    //< -- PANELES -->

                    var panelgrid1 = new Ext.Panel({
                        title:'Curso',
                        width:500,
                        height:200,
                        //border:false,
                        renderTo:'grilla1',
                        items:[
                            toolbar1,
                            grid1
                        ]
                    });
                    var panelgrid2 = new Ext.Panel({
                        title:'Tipo Evaluaci&oacute;n',
                        width:500,
                        height:200,
                        //border:false,
                        renderTo:'grilla2',
                        items:[
                            toolbar2,
                            grid2
                        ]
                    });
                }
            }
            Ext.onReady(com.administrador.Form1.init,com.administrador.Form1);

        </script>



        <table>
            <tr>
                <td>&nbsp;</td>
            </tr>
            <tr>
                <td style="padding-left: 110px;"> <div id="grilla1"></div></td>
            </tr>
            <tr>
                <td> &nbsp; </td>
            </tr>
            <tr>
                <td style="padding-left: 110px;"> <div id="grilla2"></div></td>
            </tr>
        </table>

    </body>
</html>